Nowadays the number of objects in the Internet of Things, IoT, is impressively high and it is expected to grow rapidly in the near future. Furthermore also the heterogeneity of the information about each object is increasing and wide spread in different services, e.g. geographic discovery, social network services etc. As the result, an application of the IoT, which aims to aggregate data from lower level services, has to cope with different servers. The server with the longest response time determines the overall performance. While there is no generally valid response time distribution, it can be seen that the distributions of measured response time are long tailed and thus the more servers need to be contacted, the more likely is that one of them has a long response time.
In addition, research in distributed relational databases focuses on generating query execution plans that minimize the cost of data transmission over the network, see Optimization Algorithms for Distributed Queries—PETER M. G. APERS, ALAN R. HEVNER, AND S. BING YAO. Also CPU and I/O costs are key factors to be considered when processing a distributed spatial query.
Most research in distributed spatial query processing focuses on spatial join algorithms, spatial semijoin algorithms and the use of Bloom filters for processing distributed spatial queries. However, all of those cases are using strategies that also consider attributes values associated to the geo information.
Today, mobile phones are constantly communicating with external services, e.g. cloud services. In order to minimize the impact on the network connectivity and maximize the phone performances it is always good to minimize the communication between the phone and the external services.
Applications working on the mobile phone are often using the geographic location of the phone in order to provide services. In case that such an application is aiming to aggregate information about geo-located objects from different data sources, e.g. social networks, services catalogue, search engine etc., and assuming that discovering objects based on their location is made via a geo-discovery request to a specialized server, e.g. a yellow page service, it is possible to have a situation as follows:
In the typical scenario shown in FIG. 1, the application: 1) first makes a Geo Discovery Request in order to get the full list of all the objects lying within a geographic area and 2) then sends different requests to several heterogeneous servers in order to gather information about the objects.
Assume the case that the purpose of the application is to retrieve a subset of the geo-discovered objects that are matching miscellaneous characteristics. In a naive approach the application needs to issue a certain amount of requests for each object returned by the geo-discovery request. If no optimization is applied a high number of requests can be issued affecting significantly the performance of the application and the mobile phone.
An example of an application can be a service that finds a predefined number of individuals which match a given set of attributes, e.g. music taste, and that are within a certain area, e.g. around the user. Another example applications are: movie preference for selecting a cinema venue, food preference for restaurant finding. In this scenarios the main idea is to find information related to the geographic area. The geographic area is given as a geographic scope. In addition the information to be discovered needs to be specified. The result of a geographic discovery request is all the information whose geographic location matches the geographic scope. One assumption is the uniqueness of the object ID, this means that each discovered object is uniquely identified across the heterogeneous services.